# -*-coding:utf-8 -*-
# Author : Mo
# Data : 2022/4/8 21:42
from django.shortcuts import redirect
from django.utils.deprecation import MiddlewareMixin
from web import models
from django.conf import settings


class AuthMiddleware(MiddlewareMixin):

    def process_request(self, request):
        """ 如果用户已登录，则request中赋值 """
        user_id = request.session.get('user_id')
        user_object = models.UserInfo.objects.filter(id=user_id).first()
        request.tracer = user_object

        # 白名单：没有登录都可以访问的URL
        """
        1.获取单前用户访问的URL
        2.检查URL是否在白名单中，如果再则可以继续向后访问，如果不在则进行判断是否已登录
        """
        if request.path_info in settings.WHITE_REGEX_URL_LTST:
            return

        # # 检查用户是否登录，已登录继续往后走；未登录则返回登录页面。
        if not request.tracer:
            return redirect('login')